<?php
/*
Autor: Jonathan Vindas Abarca
Fecha: 23/08/2012
Descripción: Este archivo contiene la declaración de una clase que sirve para conectar las peticiones 
ajax de JavaScript con los metodos de los modelos de la aplicacion.
Bitacora de modificaciones:
<
    Autor: 
    Fecha: 
    Descripción: 
>
*/
        error_reporting(0); 
        session_start();
        setcookie(session_name(), session_id(), NULL, NULL, NULL, 0);
        setcookie(session_name(), session_id(), NULL, NULL, NULL, 1);
switch ($_GET["accion"]) 
{             
    case "cargarComboGuias":
        cargarGuias();
        break;
    case "cargarComboOrdenes":
        cargarOrdenes();
        break;
    case "cargarComboArticulos":
        cargarArticulos();
        break;
    case "cargarEmbalajes":
        cargarEmbalajes();
        break;
    case "cargarBodegas":
        cargarBodegas();
        break;
    case "cargarArticulosModificar":
        cargarArticulosModificar();
        break;
    case "cargarTransportistas":
        cargarTransportistas();
        break;
    case "validarPrecio":
        validarPrecio();
        break;
    case "validarLineaDetalle":
        validarLineaDetalle();
        break;    
    case "cargarVias":
        cargarVias();
        break;
    case "cargarCodSigGuias":
        cargarCodSigGuias();
        break;
    case "cargarCodSigTransportistas":
        cargarCodSigTransportistas();
        break;
    case "cargarCodSigEmbalajes":
        cargarCodSigEmbalajes();
        break;
    case "cargarPrecioUnitario":
        cargarPrecioUnitario();
        break;
    case "expandirGuias":
        expandirGuias();
        break;
    case "validarCantidadArticuloLD":
        validarCantidadArticuloLD();
        break;
    case "linkAgregarLinea":
        linkAgregarLinea();
        break;    
     case "cargarCompanias":
        cargarCompaniasLD();
        break; 
     case "cargarDivisiones":
        cargarDivisiones();
        break; 
     case "dependenciaOrdenes":
        dependenciaOrdenes();
        break; 
     case "mostrarDetalleOrdenCompra":
        mostrarDetalleOrdenCompra();
        break; 
    case "mostrarOrdenCompraCandidatasAutoCompletar":
        mostrarOrdenCompraCandidatasAutoCompletar();
        break; 
    case "autocompletarOrdenes":
        autocompletarOrdenes();
        break; 
    case "mostrarPrecioSegunEmbalaje":
        mostrarPrecioSegunEmbalaje();
        break;
    case "cargarRoles":
        cargarRoles();
        break;
    case "obtenerPermisoGenerico":
        //obtenerPermisoModificarGuia();
        obtenerPermisoGenerico();
        break;     
    case "buscarGuiasAsociadasOrden":
        buscarGuiasAsociadasOrden();
        break;
}

    function obtenerPermisoModificarGuia() 
    {    
        require_once 'dataControlador.php';
        require_once '../FirePHPCore/FirePHP.class.php';
        $firephp = FirePHP::getInstance(true);        
        $obtenerPermiso=validarPermisos('modificarGuia');
        $firephp->log('Permiso', 'Permiso');
        //linkAgregarLinea();
        echo "<h1>hola</h1>";
        //echo $obtenerPermiso;
    }

    function mostrarPrecioSegunEmbalaje() 
    {    
        //require_once '../modelos/conexionAXPLUS.php';
        //require_once 'conexionAXPLUS.php';
        require_once '../modelos/guiasModelo.php';
        require_once '../modelos/preciosModelo.php';
        $codigoEmbalaje=$_GET['embalaje'];
        $codigoGuia=$_GET['codigoGuia'];                
        $localidad=buscarLocalidadGuia($codigoGuia);
        $precio=buscarPrecioUnitario($localidad,$codigoEmbalaje);    
        echo "$precio";
    }

    function autocompletarOrdenes() 
    {   
        require_once '../modelos/dataModelo.php';          
        require_once '../FirePHPCore/FirePHP.class.php';
        $firephp = FirePHP::getInstance(true);
        require_once '../modelos/guiasModelo.php';
        //$dsn = "Driver={SQL Server};Server=localhost;Database=NumarProd;Integrated Security=SSPI;Persist Security Info=False;";
        
        //$conexion=odbc_connect($dsn, 'sa','patito035');    
        $conexion=conexion_AX();
        //deberia jalar las ordenes segun  la bodega destino de la Guia        
        //$codigoDivision='0001';
        $codigoGuia=$_GET['hddCodigoGuia'];    
        $codigoOrden=$_GET['q'];
        $guias=buscarGuiaPorCodigo($codigoGuia);
        foreach ($guias as $guia) 
        {
            $codigoBodegaRemitente=$guia['codigoBodegaRemitente'];
            $codigoBodegaDestino=$guia['codigoBodegaDestino'];
        }
        $firephp->log($codigoBodegaDestino,'Compania: ');
        $firephp->log($codigoBodegaRemitente,'Division: ');
        //$rs = odbc_exec($conexion, "select PURCHID FROM PURCHTABLE where DIMENSION=$codigoDivision and PURCHSTATUS='3' and purchid like '%$codigoOrden%'");
        $rs = odbc_exec($conexion, "select PURCHID FROM PURCHTABLE where DATAAREAID=$codigoBodegaDestino and DIMENSION=$codigoBodegaRemitente and PURCHSTATUS='3' and purchid like '%$codigoOrden%'");    
        $ordenes=Array();
        while (odbc_fetch_row($rs))
        {
            $orden['codigoOrden']=odbc_result($rs,"PURCHID");        
            array_push($ordenes,$orden);
        }       
        odbc_close($conexion);
        $firephp->log($ordenes,'Ordenes: ');
        foreach ($ordenes as $orden) 
        {
            $codigoOrden = $orden['codigoOrden'];            
            echo "$codigoOrden\n";
        }
    }

    function mostrarOrdenCompraCandidatasAutoCompletar() 
    {
        require_once '../modelos/dataModelo.php';          
        //require_once 'conexionAXPLUS.php';
        $codigoCompania=$_GET['codigoCompania'];
        $codigoDivision=$_GET['codigoDivision'];
        $codigoOrden=$_GET['codigoOrdenCompra'];        
        $rs = odbc_exec(conexion_AX(), "select PURCHID FROM PURCHTABLE where DIMENSION=$codigoDivision and DATAAREAID=$codigoCompania and PURCHSTATUS='3' and purchid like '%$codigoOrden%'");
        $ordenes=Array();
        while (odbc_fetch_row($rs))
        {
            $orden['codigoOrden']=odbc_result($rs,"PURCHID");        
            array_push($ordenes,$orden);
        }            
        odbc_close(conexion_AX());
        foreach ($ordenes as $orden) 
        {
            $codigoOrden = $orden['codigoOrden'];        
            echo $codigoOrden . " <br>";
        }
    }

    function obtenerPermisoGenerico() 
    {
        //Este es un metodo ejemplo para retornar permisos con ajax
        require_once '../modelos/dataModelo.php';        
        $usuario=$_SESSION["s_username"];        
        $metodo=$_GET["metodo"];
        $busqueda="select dbo.FUN001ConsultaPermisos('".$metodo."','".$usuario."') as Resultado;";
        //$firephp->log($busqueda, "buscarPermiso");        
        $rs =odbc_exec(conexion(),$busqueda );        
        while (odbc_fetch_row($rs)){
                $Resultado=odbc_result($rs,"Resultado");                                                      
            }               
        if ($Resultado==1) 
        {            
           echo 1;
        }
        else
        {
            echo 0;
        }
    }

    function cargarCompaniasLD() 
    {
        require_once '../modelos/dataModelo.php';          
        $rs = odbc_exec(conexion_AX(), "SELECT ID, NAME FROM DATAAREA WHERE ISVIRTUAL='0' and id in('001','003','006','009')");
        $companias=Array();
        while (odbc_fetch_row($rs))
        {
            $compania['codigoCompania']=odbc_result($rs,"ID");
            $compania['nombreCompania']=odbc_result($rs,"NAME");
            array_push($companias,$compania);
        }       
        odbc_close(conexion_AX());
        foreach ($companias as $compania) 
        {
            $codigoCompania = $compania['codigoCompania'];
            $nombreCompania = $compania['nombreCompania'];
            echo "<option value=" . $codigoCompania . ">" . $nombreCompania . "</option>";
        }
    }

    function cargarDivisiones() 
    {        
        require_once '../modelos/dataModelo.php';  
        //require_once 'conexionAXPLUS.php';        
        $rs = odbc_exec(conexion_AX(), "SELECT top 4 DESCRIPTION, NUM  FROM DIMENSIONS");
        $divisiones=Array();
        while (odbc_fetch_row($rs))
        {
            $division['codigoDivision']=odbc_result($rs,"NUM");
            $division['nombreDivision']=odbc_result($rs,"DESCRIPTION");
            array_push($divisiones,$division);
        }        
        odbc_close(conexion_AX());
        foreach ($divisiones as $division) 
        {
            $codigoDivision = $division['codigoDivision'];
            $nombreDivision = $division['nombreDivision'];
            echo "<option value=" . $codigoDivision . ">" . $nombreDivision . "</option>";
        }
    }

    function dependenciaOrdenes() 
    {
        require_once '../modelos/dataModelo.php';  
        $codigoCompania=$_GET['codigoCompania'];
        $codigoDivision=$_GET['codigoDivision'];        
        $rs = odbc_exec(conexion_AX(), "select PURCHID FROM PURCHTABLE where DIMENSION=$codigoDivision and DATAAREAID=$codigoCompania and PURCHSTATUS='3'");
        $ordenes=Array();
        while (odbc_fetch_row($rs))
        {
            $orden['codigoOrden']=odbc_result($rs,"PURCHID");        
            array_push($ordenes,$orden);
        }        
        odbc_close(conexion_AX());
        foreach ($ordenes as $orden) 
        {
            $codigoOrden = $orden['codigoOrden'];        
            echo "<option value=" . $codigoOrden . ">" . $codigoOrden . "</option>";
        }
    }

    function mostrarDetalleOrdenCompra() 
    {  
        require_once '../modelos/dataModelo.php';        
        require_once '../modelos/guiasModelo.php';
        require_once '../modelos/lineaDetallesModelo.php';       
        $codigoEmbalaje= $_GET['codigoEmbalaje'];
        $codigoGuia = $_GET['codigoGuia'];
        $numeroLinea = $_GET['numeroLinea'];
        //$guias=buscarGuiaPorCodigo($codigoGuia);
        $codigoBodegaRemitente=buscarLocalidadGuia($codigoGuia);
        $codigoOrden = $_GET['codigoOrdenCompra'];                          
        $rs = odbc_exec(conexion_AX(), "select PURCHID,ITEMID,NAME,PURCHQTY,DATAAREAID,DIMENSION from PURCHLINE  where PURCHID='$codigoOrden' and DIMENSION='$codigoBodegaRemitente'");
        $detalles=Array();
        while (odbc_fetch_row($rs))
        {        
            $detalle['codigoOrden']=odbc_result($rs,"PURCHID");        
            $detalle['codigoArticulo']=odbc_result($rs,"ITEMID");     
            $detalle['descripcionArticulo']=odbc_result($rs,"NAME");     
            $detalle['cantidadOrdenada']=odbc_result($rs,"PURCHQTY");             
            array_push($detalles,$detalle);
        }        
        odbc_close(conexion_AX());        
        if (!empty($detalles)) 
        {
                echo "<div id='contenedorTablaArticuloDisponible' name='contenedorTablaArticuloDisponible'>
                    <legend class='leyenda' id='tituloTabla'>Articulos Disponibles Orden Compra:</legend>     
                    <br>
                    <table cellpadding='0' cellspacing='0' border='0' class='display' id='tabla_lista_paises'>
                    <thead>
                        <tr>
                            <th>Orden</th>
                            <th>Articulo</th><!--Estado-->
                            <th>Descripcion</th>
                            <th>Cantidad Ordenada</th>
                            <th>Cantidad Disponible</th>
                            <th>Cantidad Solicitada</th>
                            <th>Agregar Art&iacute;culo</th>
                       </tr>
                    </thead>
                    <tfoot>
                        <tr>
                            <th></th>
                            <th></th>
                        </tr>
                    </tfoot>
                    <tbody>";
        foreach ($detalles as $detalle) 
        {            
            $codigoOrden =  $detalle['codigoOrden'];
            $codigoArticulo = $detalle['codigoArticulo'];
            $descripcionArticulo = $detalle['descripcionArticulo'];
            $cantidadOrdenada = $detalle['cantidadOrdenada'];            
            $cantidadDis=obtenerQTY($detalle['codigoOrden'],$detalle['codigoArticulo'])-sumatoriaCantidadesMismoArticulo($detalle['codigoOrden'],$detalle['codigoArticulo']);     
            /*agregar el numero de linea*/
            $sinRepetir=encontrarLineaDetalleDuplicada($codigoOrden,$codigoArticulo, $codigoGuia,$codigoEmbalaje);
            if($cantidadDis!=0 && $sinRepetir==false)
            {
            echo" <tr>                                       
                    <td>$codigoOrden</td>
                    <td>$codigoArticulo</td>
                    <td>$descripcionArticulo<input type='hidden' name='hddArticulo' id='hddArticulo' value='$codigoArticulo'/></td>                    
                    <td>$cantidadOrdenada</td>                   
                    <td>$cantidadDis</td>
                    <td><input type='text' name='txtCantidadSolicitada' id='txtCantidadSolicitada' value='' style='width: 75px'></td>                   
                    <td><a id='linkBotonAgregarLineaDetalle' onClick='guardarLineaDetalle(this.parentNode.parentNode);' title='Guardar'><img src='../vistas/Imagenes/AddLinea.png' alt='Guardar'/> </a></td>
                  </tr>";
            }            
        }
        echo "</tbody>
                </table></div>";
        }
        else
        {            
            return false;        
        }
    }   

    function validarPrecio() 
    {
        require_once '../controladores/preciosControlador.php';
        $codigoTransportista = $_GET["codigoTransportista"];
        $codigoEmbalaje = $_GET["codigoEmbalaje"];
        $codigolocalidad = $_GET["codigoLocalidad"];
        $existe = validarIdPrecio($codigoEmbalaje, $codigolocalidad);
        if ($existe == 1) 
        {
            $bandera = "ExistePrecio";
            echo 1;
        } 
        else 
        {
            echo 0;
        }
    }

    function validarLineaDetalle() 
    {
        require_once '../controladores/lineaDetalleControlador.php';
        $codigoOrden = $_GET["codigoOrden"];
        $codigoArticulo = $_GET["codigoArticulo"];
        $codigoGuia = $_GET["codigoGuia"];
        $codigoEmbalaje = $_GET["codigoEmbalaje"];
        $existe = validarIdLineaDetalles($codigoOrden, $codigoArticulo, $codigoGuia, $codigoEmbalaje);
        if ($existe == 1) 
        {
            $bandera = "ExistePrecio";
            echo 1;
        } 
        else 
        {
            echo 0;
        }
    }

    function cargarGuias() 
    {
        require_once '../modelos/guiasModelo.php';
        $items = buscarTodasLasGuias();
        foreach ($items as $item) 
        {
            $codigo = $item['CodGuia'];
            echo "<option value=" . $codigo . ">" . $codigo . "</option>";
        }
    }

    function cargarOrdenes() 
    {
        require_once '../modelos/lineaDetallesModelo.php';
        $items = buscarTodosLasOrdenes();
        foreach ($items as $item) 
        {
            $codigo = $item['PURCHID'];
            echo "<option value=" . $codigo . ">" . $codigo . "</option>";
        }
    }

    function cargarArticulos() 
    {
        require_once '../modelos/lineaDetallesModelo.php';
        $codigoOrden = $_GET["code"];
        $items = buscarTodosLosArticulos($codigoOrden);
        $cantidadElemntos = count($items);
        if ($cantidadElemntos > 0) 
        {
            foreach ($items as $item) 
            {
                $codigo = $item['ITEMID'];
                $nombre = $item['NAME'];
                echo "<option value=" . $codigo . ">" . $nombre . "</option>";
            }
        } 
        else 
        {
            echo false;
        }
    }

    function cargarArticulosModificar() 
    {
        require_once '../modelos/lineaDetallesModelo.php';
        $codigoArticulo = $_GET["item"];
        $codigoOrden = $_GET["orden"];
        $items = buscarTodosLosArticulos($codigoOrden);
        foreach ($items as $item) 
        {
            $codigo = $item['ITEMID'];
            $nombre = $item['NAME'];
            echo "<option value=" . $codigo . ">" . $nombre . "</option>";
        }
    }

    function cargarEmbalajes() 
    {
        require_once '../modelos/embalajesModelo.php';
        $items = buscarTodosLosEmbalajes();
        foreach ($items as $item) 
        {
        $codigo = $item['CodEmbalaje'];
        $tipo = $item['Tipo'];
        echo "<option value=" . $codigo . ">" . $tipo . "</option>";
        }
    }

    function cargarBodegas() 
    {
        require_once '../modelos/guiasModelo.php';
        $items = buscarTodosCodigoBodega();
        foreach ($items as $item) 
        {
            $codBodega = $item['CodBodega'];
            $descripcion = $item['Descripcion'];
            echo "<option value=" . $codBodega . ">" . $descripcion . "</option>";
        }
    }

    function cargarTransportistas() 
    {
        require_once '../modelos/transportistasModelo.php';
        $items = buscarTodosLosTransportistas();
        foreach ($items as $item) 
        {
        $codigo = $item['CodTransportista'];
        $tipo = $item['Via'];
        echo "<option value=" . $codigo . ">" . $tipo . "</option>";
        }
    }

    function cargarVias() 
    {
        require_once '../modelos/guiasModelo.php';
        $items = buscarTodosCodigoVias();
        foreach ($items as $item) 
        {
            $codVia = $item['CodTransportista'];
            $descripcion = $item['Via'];
            echo "<option value=" . $codVia . ">" . $descripcion . "</option>";
        }
    }

    function cargarCodSigGuias() 
    {
        require_once '../modelos/guiasModelo.php';
        $items = buscarCodSigGuias();
        foreach ($items as $item) 
        {
            $codGuia = $item['CodGuiaSig'];
            //echo "<input type='text' id='txtCodGuia' disabled='disabled' name='txtCodGuia' value='" . $codGuia . "'/><br/><br/>";
            echo "$codGuia ";
        }
    }

    function cargarCodSigTransportistas() 
    {
        require_once '../modelos/transportistasModelo.php';
        $items = buscarCodSigTransportistas();
        foreach ($items as $item) 
        {
            $codTransportista = $item['CodTransSig'];
            //echo "<input type='text' id='txtCodTransportista' disabled='disabled' name='txtCodTransportista' value='" . $codTransportista . "'/><br/><br/>";
            echo "$codTransportista ";
        }
    }

    function cargarCodSigEmbalajes() 
    {
        require_once '../modelos/embalajesModelo.php';
        $items = buscarCodSigEmbalajes();
        foreach ($items as $item) 
        {
            $codEmbalaje = $item['CodEmbSig'];
            //echo "<input type='text' id='txtCodEmbalaje' disabled='disabled' name='txtCodEmbalaje' value='" . $codEmbalaje . "'/><br/><br/>";
            echo "$codEmbalaje";
        }
    }

    function cargarPrecioUnitario() 
    {
        require_once '../modelos/guiasModelo.php';
        $codigoGuia = $_GET['codigoGuia'];
        $codigoEmbalaje = $_GET['codigoEmbalaje'];
        $guias = obtenerGuia($codigoGuia);
        foreach ($guias as $guia) 
        {
            $codigoLocalidad = $guia['BodegaDestino'];
            $codigoTransportista = $guia['Via'];
            $precios = obtenerPrecioUnitarioTEL($codigoTransportista, $codigoEmbalaje, $codigoLocalidad);
            foreach ($precios as $precio) 
            {
                $precioObtenido = $precio['Precio'];
                echo $precioObtenido;
            }
        }
    }

    function expandirGuias() 
    {
        require_once '../modelos/lineaDetallesModelo.php';
        //require_once '../FirePHPCore/FirePHP.class.php';
        //$firephp = FirePHP::getInstance(true);
        $codigoGuia = $_GET['guia'];
        $codigoEmbalaje = $_GET['embalaje'];
        //$firephp->log('expandirGuias','expandirGuias');
        $items = buscarXGuiaEmbalaje($codigoGuia, $codigoEmbalaje);
        if (!empty($items)) 
        {
        echo "<br/><br/>
               <legend class='leyenda'>Detalle Articulos de la Linea:</legend>
                    <br/>
                    
                <table cellpadding='0' cellspacing='0' border='0' class='display' id='tabla_lista_paises'>
                    <thead>
                        <tr>
                            <th>Embalaje</th>
                            <th>N&uacute;mero Orden</th><!--Estado-->
                            <th>Art&iacute;culo</th>
                            <th>Cantidad Ordenada</th>                           
                       </tr>
                    </thead>
                    <tfoot>
                        <tr>
                            <th></th>
                            <th></th>
                        </tr>
                    </tfoot>
                    <tbody>";
        foreach ($items as $item) 
        {
            $NumOrden = $item['NumOrden'];
            $Articulo = $item['Articulo'];
            $Cant = $item['Cant'];
            $Nombre = $item['NAME'];
            $Embalaje = $item['Tipo'];            
            echo" <tr>                                       
                    <td>$Embalaje</td>
                    <td>$NumOrden</td>
                    <td>$Nombre<input type='hidden' name='hddArticulo' id='hddArticulo' value='$Articulo'/></td>                    
                    <td>$Cant</td>                                       
                  </tr>";
        }
        echo "</tbody>
                </table>";
        }
        else
        {
            return false;
        }
    }

    function validarCantidadArticuloLD() 
    {
        require_once '../modelos/lineaDetallesModelo.php';
        $codigoOrden = $_GET['codigoOrden'];
        $codigoArticulo = $_GET['codigoArticulo'];
        $lineaDetalles = validarArticuloLineaDetalle($codigoOrden, $codigoArticulo);
        foreach ($lineaDetalles as $valor) 
        {
            $cantidadInventario = $valor['cantidadInventario'];
            echo $cantidadInventario;
        }
    }
    
    function cargarRoles() 
    {        
        require_once '../modelos/dataModelo.php';  
        //require_once 'conexionAXPLUS.php';        
        $rs = odbc_exec(conexion(), "SELECT CodigoRol,Nombre  FROM Roles");
        $roles=Array();
        while (odbc_fetch_row($rs))
        {
            $rol['CodigoRol']=odbc_result($rs,"CodigoRol");
            $rol['Nombre']=odbc_result($rs,"Nombre");
            array_push($roles,$rol);
        }        
        odbc_close(conexion());
        foreach ($roles as $rol) 
        {
            $codigoRol = $rol['CodigoRol'];
            $nombre = $rol['Nombre'];
            echo "<option value=" . $codigoRol . ">" . $nombre . "</option>";
        }
    }
    
    function buscarGuiasAsociadasOrden()
    {        
        require_once '../modelos/guiasModelo.php'; 
        $codigoOrden= $_GET['codigoOrdenCompra'];
        $detalles=buscarGuiasAsociadasNumeroOrden($codigoOrden);        
        echo "<div id='contenedorTablaArticuloDisponible' name='contenedorTablaArticuloDisponible'>
                    <legend class='leyenda' id='tituloTabla'>Guias Asociadas a Orden:</legend>     
                    <br>
                    <table cellpadding='0' cellspacing='0' border='0' class='display' id='tabla_lista_paises'>
                    <thead>
                        <tr>
                            <th>Guia</th>                            
                       </tr>
                    </thead>                    
                    <tbody>";
        foreach ($detalles as $detalle) 
        {            
            $codigoOrden =  $detalle['CodigoGuiaSegunDivision'];            
            echo" <tr>                                       
                    <td><center>$codigoOrden</center>                    </td>
                  </tr>";
            }            
        
        
        echo "</tbody>        </table></div>";
        
    }
?>
